package com.max.mil.controller;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;

public class ByteBufferTest {
	
	public static void main(String[] args) throws InterruptedException {
		List list = new ArrayList();
		for(int i = 0; i < 100; i++) {
//			list.add(ByteBuffer.allocateDirect(Integer.MAX_VALUE / 100));
			list.add(ByteBuffer.allocate(Integer.MAX_VALUE / 100));
			Thread.sleep(5000);
		}
		System.out.println(list.size());
		
		// java.nio.ByteBuffer.allocate(capacity) 使用 java heap(java堆)分配内存: 可以直接通过工具查看出内存占用
		// java.nio.ByteBuffer.allocateDirect(capacity) 使用non java heap(非java堆)通过操作系统直接分配内存: 会导致查看不出java heap的内存占用，导致泄露看不出来
		
	}
	
}

